package com.sp.outputstream_;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

/**
 * 演示ObjectOutputStream的使用, 完成数据的序列化
 */
public class ObjectOutputStream_ {
    public static void main(String[] args) throws Exception {
        //序列化后, 保存的文件格式, 不是纯文本, 而是按照它的格式来保存
        String filePath = "d:\\development\\code\\IO_Test\\news\\data.dat";
        ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream(filePath));

        //序列化数据到"d:\\development\\code\\IO_Test\\news\\data.dat"
        objectOutputStream.writeInt(100);//int -> Integer(Integer继承了Number类, Number类实现了Serializable接口)
        objectOutputStream.writeBoolean(true);//boolean -> Boolean (实现了Serializable)
        objectOutputStream.writeChar('a');//char -> Character(实现了Serializable)
        objectOutputStream.writeDouble(9.5);//double -> Double(实现了Serializable)
        objectOutputStream.writeUTF("sp牛逼");//这里保存的是String类型(实现了Serializable)
        //保存一个dog对象
        objectOutputStream.writeObject(new Dog("旺财", 10, "中国", "白色"));

        objectOutputStream.close();
        System.out.println("数据保存完毕(序列化形式)");

    }
}
